<?php 
/**
*  @package :  class.main
*  @author  :  邝达峰
*  @date    : 2017-07-11
*  日志处理类
*/

class Log
{
    /**
     +----------------------------------------------------------
     * 日志写入
     +----------------------------------------------------------
     * @static
     * @access public 
     +----------------------------------------------------------
     * @param string $message 日志信息
     * @param string $file  写入文件 默认取定义日志文件
     */
    public static function write($message,$file='')
    {
    	#日志当前时间
		$now = date('[ y-m-d H:i:s ]');
		#处理日志路径
        $destination = $file == ''? SYSTEM_LOG_PATH.date('y_m_d').'.log' : $file;
        #判断日志的文件名是否可写
        if(is_writable(SYSTEM_LOG_PATH)){
			#检测日志文件大小，超过配置大小则备份日志文件重新生成
			if(file_exists($destination) && LOG_FILE_SIZE <= filesize($destination)){
				  rename($destination,dirname($destination).DIRECTORY_SEPARATOR.str_replace('.log','-'.time().'.log',basename($destination)));
			}
			#输出错误信息
			error_log("$now\n$message\n", LOG_FILE_TYPE,$destination);
			#处理错误信息
			$d = dir(dirname($destination));
			$firstDate = date('y_m_d',time()-5*86400);
			while (false !== ($entry = $d->read())) {
				$f = $d->path.DIRECTORY_SEPARATOR.$entry;
				if(is_file($f) && preg_replace("/([\d_]+).+$/",'\\1',$entry) < $firstDate) {
					unlink($f);
				}
			}
			#关闭文件操作
			$d->close();
			#清除文件状态缓存
			clearstatcache();
        }
    }
}
?>